home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
Magnum One
/
Magnum One (Mid-American Digital) (Disc Manufacturing).iso
/
d27
/
matenc.arc
/
CPP1570.CLP
next >
Wrap
Text File
|
1991-12-04
|
5KB
|
105 lines
CPP1570: PGM PARM(&PGM &FILE &MBR &CRTFILE &ADDMBR &MBROPT)
/* Program - CPP1570 */
/* CPP for command - MATPGM */
/* Materialize a program into a data base file. */
DCL &PGM *CHAR 20 /* Program.Library name */
DCL &FILE *CHAR 20 /* File.Library name */
DCL &MBR *CHAR 10 /* Member name */
DCL &CRTFILE *CHAR 4 /* Create file option */
DCL &ADDMBR *CHAR 4 /* Add Mbr if non-existant */
DCL &MBROPT *CHAR 8 /* Replace, add member data */
DCL &P *CHAR 10 /* Program name */
DCL &PL *CHAR 10 /* Program's library name */
DCL &F *CHAR 10 /* File name */
DCL &FL *CHAR 10 /* File's library name */
DCL &CNT *DEC 003
DCL &MSGID *CHAR 007
DCL &MSGDTA *CHAR 132
MONMSG MSGID(CPF0000) EXEC(GOTO RCVMSG)
CHGVAR VAR(&F) VALUE(%SST(&FILE 01 10))
CHGVAR VAR(&FL) VALUE(%SST(&FILE 11 10))
CHGVAR VAR(&P) VALUE(%SST(&PGM 01 10))
CHGVAR VAR(&PL) VALUE(%SST(&PGM 11 10))
IF (&MBR *EQ '*PGM') CHGVAR VAR(&MBR) +
VALUE(%SST(&PGM 01 10))
CHKPGM: CHKOBJ OBJ(%SST(&PGM 01 10).%SST(&PGM 11 10)) +
OBJTYPE(*PGM) AUT(*OPER *READ)
CHKFILE: CHKOBJ OBJ(%SST(&FILE 01 10).%SST(&FILE 11 10)) +
OBJTYPE(*FILE) MBR(&MBR) AUT(*NORMAL)
MONMSG MSGID(CPF9801) EXEC(DO)
CRTFILE: IF (&CRTFILE *EQ '*YES') +
DO
IF (%SST(&FILE 11 10) *EQ '*LIBL') +
CRTPF FILE(%SST(&FILE 01 10)) RCDLEN(80) +
MBR(&MBR) MAXMBRS(32767) SIZE(6400 6400 8) +
LVLCHK(*NO) TEXT('Program template for +
program' *BCAT &PGM)
ELSE CRTPF FILE(%SST(&FILE 01 10).%SST(&FILE 11 +
10)) RCDLEN(80) MBR(&MBR) MAXMBRS(32767) +
SIZE(6400 6400 8) LVLCHK(*NO) TEXT('Program +
template for program' *BCAT &PGM)
RCVMSG
RCVMSG
GOTO MATPGM
ENDDO
SNDPGMMSG MSG('File' *BCAT %SST(&FILE 01 10) *TCAT '.' +
*TCAT %SST(&FILE 11 10) *BCAT 'not found.') +
TOPGMQ(*PRV) MSGTYPE(*DIAG)
RETURN
ENDDO
NOMBR: MONMSG MSGID(CPF9815) EXEC(DO)
CHKOBJ OBJ(%SST(&FILE 01 10).%SST(&FILE 11 10)) +
OBJTYPE(*FILE) AUT(*OPER *OBJMGT *READ *ADD +
*UPD *DLT)
IF (&ADDMBR *EQ '*YES') DO
ADDPFM FILE(%SST(&FILE 01 10).%SST(&FILE 11 10)) +
MBR(&MBR) TEXT('Program Template for +
program ' *CAT &PGM)
GOTO MATPGM
ENDDO
SNDPGMMSG MSG('Member ' *CAT &MBR *BCAT 'does not exist +
in file' *BCAT %SST(&FILE 01 10) *TCAT '.' +
*CAT %SST(&FILE 11 10)) MSGTYPE(*DIAG)
RETURN
ENDDO
CHKCRT: IF (&CRTFILE *EQ '*YES') DO
SNDPGMMSG MSG('File' *BCAT %SST(&FILE 01 10) *TCAT +
'.' *CAT %SST(&FILE 11 10) *BCAT +
'already exists.') MSGTYPE(*DIAG)
RETURN
ENDDO
/* Materialize program template. */
MATPGM: CALL PGM(QSCMATPG) PARM(&P &PL &F &FL &MBR &MBROPT)
RCVMSG: /* Receive and forward program messages. */
RCVMSG RMV(*YES) MSGDTA(&MSGDTA) MSGID(&MSGID)
IF (&MSGID *EQ ' ') RETURN
IF (%SST(&MSGID 1 2) *EQ 'CP' +
*OR %SST(&MSGID 1 3) *EQ 'MCH') DO
IF (&MSGDTA *EQ ' ') SNDPGMMSG MSGID(&MSGID) +
MSGF(QCPFMSG) TOPGMQ(*PRV) MSGTYPE(*DIAG)
ELSE SNDPGMMSG MSGID(&MSGID) MSGF(QCPFMSG) +
MSGDTA(&MSGDTA) TOPGMQ(*PRV) MSGTYPE(*DIAG)
CHGVAR VAR(&CNT) VALUE(&CNT + 1)
IF ((&CNT *GT 0) *AND (&CNT *LT 10)) GOTO RCVMSG
/* MAXMSG(10) */
ENDDO
ENDPGM: ENDPGM